﻿using DMSkin.Core.MVVM;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace CloudMusic.Model
{
    public class HotSongList
    {
        /// <summary>
        /// 
        /// </summary>
        public List<PlaylistsItem> playlists { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int total { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool more { get; set; }
        /// <summary>
        /// 全部
        /// </summary>
        public string cat { get; set; }
    }
    public class Expertss
    { }
    public class Creators
    {
        /// <summary>
        /// 
        /// </summary>
        public string defaultAvatar { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long province { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int authStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool followed { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarUrl { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int accountStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int gender { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long birthday { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long userId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int userType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string nickname { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string signature { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string detailDescription { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long avatarImgId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long backgroundImgId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string backgroundUrl { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int authority { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string mutual { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<string> expertTags { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Expertss experts { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int djStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int vipType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string remarkName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarImgIdStr { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string backgroundImgIdStr { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarImgId_str { get; set; }
    }
    public class c
    {
        /// <summary>
        /// 
        /// </summary>
        public bool defaultAvatar { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long province { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int authStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool followed { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarUrl { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int accountStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int gender { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long birthday { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long userId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int userType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string nickname { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string signature { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string detailDescription { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long avatarImgId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long backgroundImgId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string backgroundUrl { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int authority { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool mutual { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<string> expertTags { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Expertss experts { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int djStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int vipType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string remarkName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarImgIdStr { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string backgroundImgIdStr { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarImgId_str { get; set; }
    }
    public class PlaylistsItem
    {
        /// <summary>
        /// 山海有你不惧千里，愿你终能与所爱之人相遇
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long id { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long trackNumberUpdateTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int status { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long userId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long createTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long updateTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int subscribedCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int trackCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int cloudTrackCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string coverImgUrl { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long coverImgId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<string> tags { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long playCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long trackUpdateTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int specialType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int totalDuration { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Creators creator { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string tracks { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<c> subscribers { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string subscribed { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string commentThreadId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool newImported { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int adType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool highQuality { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int privacy { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool ordered { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool anonimous { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int coverStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public RecommendInfo recommendInfo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int shareCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string coverImgId_str { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int commentCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string alg { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string tag { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string copywriter { get; set; }

    }
    public class RecommendInfo
    {
        public string alg { get; set; }
    }
    //OnPropertyChanged
    public class HotSongListInfo: ViewModelBase
    {
        private string _coverImgUrl;
        private string _playCount;
        private string _nickname;
        private string _starsVis;
        private string _name;
        private long _id;
        private string _vVis;
        private string _musicVis;
        private string _allName;
        private Visibility _topVis = Visibility.Visible;
        private bool highQuality = false;
        private string _tag;
        public long id
        {
            get {return _id; }
            set { _id = value; OnPropertyChanged("id"); }
        }
        public string coverImgUrl 
        {
            get { return _coverImgUrl; }
            set { _coverImgUrl = value; OnPropertyChanged("coverImgUrl"); }
        }

        public string playCount
        {
            get { return _playCount; }
            set { _playCount = value; OnPropertyChanged("playCount"); }
        }
        public string nickname
        {
            get { return _nickname; }
            set { _nickname = value; OnPropertyChanged("nickname"); }
        }
        /// <summary>
        /// usertype=200-星星，2-网易V，4-网易云音乐人
        /// </summary>
        public string starsVis
        {
            get { return _starsVis; }
            set { _starsVis = value; OnPropertyChanged("starsVis"); }
        }
        public string name
        {
            get { return _name; }
            set { _name = value; OnPropertyChanged("name"); }
        }
        public string allName
        {
            get { return _allName; }
            set { _allName = value;OnPropertyChanged("allName"); }
        }
        public string vVis
        {
            get { return _vVis; }
            set { _vVis = value; OnPropertyChanged("vVis"); }
        }

        public string musicVis
        {
            get { return _musicVis; }
            set { _musicVis = value; OnPropertyChanged("musicVis"); }
        }
        public Visibility topVis
        {
            get { return _topVis; }
            set { _topVis = value;OnPropertyChanged("topVis"); }
        }
        public bool HighQuality
        {
            get { return highQuality; }
            set { highQuality = value; OnPropertyChanged("HighQuality"); }
        }
        public string Tag
        {
            get { return _tag; }
            set { _tag = value; OnPropertyChanged("Tag"); }
        }
    }
    /// <summary>
    /// 
    /// </summary>
    public class songSheetData
    {
        public Visibility jpVis { get; set; }
        public HotSongListInfo songsdata { get; set; }

    }
}
